home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / Graphic Elements 3 / GEQTHack / GELogo.c < prev    next >
Text File  |  1995-06-13  |  2KB  |  87 lines

  1. /*
  2.     GELogo.c
  3.     
  4.     Graphic Elements © 1994 floating sign
  5.     
  6.     Copyright 1994 by Al Evans. All rights reserved.
  7.     
  8.     5/31/94
  9.     
  10.     Modified for MacHack 6/11/94
  11.     
  12. */
  13.  
  14. #include "GELogo.h"
  15. #include "SFXCtrlr.h"
  16. #include "SFXProcs.h"
  17. #include "SFXDissolve.h"
  18. #include "GESound.h"
  19.  
  20. typedef struct {
  21.             Boolean signOn;
  22.             RGBColor color[2];
  23. } BlinkRec, *BlinkRecPtr;
  24.  
  25. BlinkRec    logoBlink;
  26. Str255            logoText = "\pGraphic Elements";
  27. Str255            line2 = "\p©1995 by Al Evans";
  28.  
  29. Boolean LoadLogoScene(GEWorldPtr world)
  30. {
  31.     GrafElPtr        logoElement;
  32.     GrafElPtr        secondLine;
  33.     short            fontNum;
  34.     
  35.     GrafElPtr        ctrlr;
  36.     
  37.     GetFNum("\pPalatino", &fontNum);
  38.     
  39.     logoBlink.signOn = false;
  40.     logoBlink.color[0].red = 194 << 8;
  41.     logoBlink.color[0].green = 194 << 8;
  42.     logoBlink.color[0].blue = 0;
  43.     logoBlink.color[1].red = 240 << 8;
  44.     logoBlink.color[1].green = 240 << 8;
  45.     logoBlink.color[1].blue = 46 << 8;
  46.     
  47.     //Create sign
  48.     logoElement = NewTextGraphic(world, logoID, logoPlane, 64, 51, srcOr,
  49.                             fontNum, bold, 36, logoBlink.color[0], logoText);
  50.     if (!logoElement) return false;
  51.     
  52.     secondLine = NewTextGraphic(world, logoID+1, logoPlane + 1, 357, 311, srcOr,
  53.                             fontNum, 0, 14, logoBlink.color[0], line2);
  54.     if (!secondLine) return false;
  55.  
  56.     //Set up blinking action
  57.     SetCollision(world, logoID, DoLogoHit, 400);
  58.     
  59.     //Dissolve in first line, wipe in second..
  60.     ctrlr = DoGESFX(world, 'SFX ', logoElement, SFXDissolve, geDissolveSteps, 2000, 60, true, true);
  61.     GEScheduleSound((GESoundPtr) world->userData, 500, 2, 2000);
  62.     ctrlr = DoGESFX(world, 'SFX1', secondLine, SFXHWipe, 20, 5000, 60, true, false);
  63.     GEHoldSound((GESoundPtr) world->userData, 600, true);
  64.     return true;
  65.                     
  66. }
  67.  
  68. pascal void DoLogoHit(GEWorldPtr world, GrafElPtr logo, GEDirection dir, 
  69.                                     CollisionPhase phase, GrafElPtr objHit)
  70. {
  71.     switch (phase) {
  72.         case collisionBegin:
  73.             GEScheduleSound((GESoundPtr) world->userData, 600, 2, 0);
  74.             ((TextGraphicPtr) logo)->tgColor = logoBlink.color[true];
  75.             ChangedRect(world, &logo->animationRect);
  76.             break;
  77.         case collisionContinue:
  78.             break;
  79.         case collisionEnd:
  80.             ((TextGraphicPtr) logo)->tgColor = logoBlink.color[false];
  81.             ChangedRect(world, &logo->animationRect);
  82.             GEStopOneSound((GESoundPtr) world->userData, 600);
  83.             break;
  84.     }
  85. }
  86.  
  87.